This invention relates to packet-based data communication systems, particularly xe2x80x98Ethernetxe2x80x99 systems wherein data may be conveyed over a link between physical layer devices at a rate which is selected from a plurality of rates (usually two rates) by the process known as auto-negotiation. More particularly, the invention concerns, in addition to the process of auto-negotiation, the additional testing of signals conveyed over the link in order to discriminate against false or misleading signals which may lead to erroneous auto-negotiation.
Auto-negotiation is the conventional term used to describe the means to exchange information between two devices that share a link segment and to configure both devices automatically to take maximum advantage of their abilities (including the rate at which they can handle data). In the specific example described hereinafter, auto-negotiation is explained with reference to physical layer link signalling for 10 Megabits per second and 100 Megabits per second and the selection between these rates, particularly in relation to 10 BASE-T signalling and 100 BASE-Tx signalling in accordance with the IEEE Standard 802.3, 1998 Edition. However, the invention may have a broader application where signals at the higher of two data rates may resemble coded signals employed for auto-negotiation and transmitted at the lower rate.
The auto-negotiation function is provided at the physical layer of the OSI reference model. The function allows devices at both ends of a link segment to advertise their operation abilities, acknowledge receipt and understanding of the common mode or modes of operation that both devices share, and to reject the use of operational modes that are not shared by both devices. Where more than one common mode exists between the two devices, a mechanism is provided to allow the devices to resolve to a single mode of operation using a predetermined resolution function. As is described in IEEE Standard 802.3, 1998 Edition, published by the Institute of Electrical and Electronic Engineers Inc. NY10017-2394, USA, and more particularly in Clause 28 of that Standard, auto-negotiation is controlled by an auto-negotiation state machine which, broadly speaking, responds to link pulses indicating advertised abilities and selects a mode of operation, including a selection from at least two nominal data rates, and controls a physical medium attachment layer accordingly. The physical medium attachment layer is interposed between signal paths extending from a port of a network device and is itself connected to a physical coding sub-layer. The physical medium attachment layer contains the functions for transmission, reception and (if appropriate) collision detection, clock recovery and skew alignment and is connected, by way of a physical coding sub-layer, to a medium independent interface which conveys signals between the physical layer device (PHY) and the higher layers of the network device. In particular the medium independent interface (MII) is connected by way of a reconciliation sub-layer to the medium access control layer (sometimes called layer 2) and then to the logical link control layer (sometimes called network layer or layer 3). All these terms are herein used in the senses used in the aforementioned Standard.
Auto-negotiation in the manner prescribed by Clause 28 of the aforementioned Standard depends on the transmission of a group of link pulses, which are a modified form of link pulses employed by 10BASE-T units, as a mechanism to determine if the link segment is operational in the absence of packet data. Whereas the ordinary link integrity test pulses (usually called normal link pulse sequence) comprises pulses in a prescribed form transmitted every sixteen milliseconds while a data transmitter is idle, auto-negotiation employs a fast link pulse burst, which encodes the data used to control the auto-negotiation function. These bursts are transmitted only during a process of auto-negotiation and not otherwise. A fast link pulse burst consists of an initial clock pulse and thereafter a sequence of alternating data pulses and clock pulses. The spacing of the alternate clock pulses is prescribed to be between 111 microseconds and 139 microseconds (typically 125 microseconds) whereas the spacing from a clock pulse to the following data pulse is prescribed to be between 55.5 microseconds and 69.5 microseconds, typically 62.5 microseconds. There is prescribed an interval of between 8 and 24 milliseconds from fast link pulse (FLP) burst to the next. The significance of the fast link pulse burst, and in particular the manner in which the data advertising the modes of operation is conveyed is fully set out in the aforementioned clause, particularly from sub clause 28.2.1.2 onwards.
It is normal for a physical layer device (PHY) when in an idle state to transmit a sequence of xe2x80x98idlexe2x80x99 pulses. A device which operates in a 100BASE-Tx mode normally employs a three level coding with scrambling, wherein the signal level at any interval is determined by a combination of consecutive data symbols. When a device operating in 100BASE-Tx is outputting scrambled idle symbols with long runs of no transitions, the result may, under certain conditions, resemble 10BASE-T link pulses and as will be explained, the PHY can xe2x80x98parallel detectxe2x80x99 a 10BASE-T link in error. The phenomenon generally occurs at xe2x80x98mid-rangexe2x80x99 cable lengths, typically cable lengths of 60 to 70 meters and can be dependent on temperature.
More particularly, when the PHY is auto-negotiating, four processes occur. One is the transmission of fast link pulses advertising the capabilities of the PHY. There are three receiving processes active in the RX port. One is (by way of a 10BASE-T receiver) the search for fast link pulses (FLPs) from the link partner. A second, by means of a 100BASE-Tx receiver, is a search for 100BASE-Tx idle signals, which are MLT3 (three-level) signals scrambled using a polynominal generated by an 11-bit PN generator. A third, using the 10BASE-T receiver, searches for 10BASE-T normal link pulses (NLPs). The receiving processes are preferably operated in cyclic sequence. Whichever process xe2x80x98winsxe2x80x99, i.e. achieves detection first, determines the subsequent operation of the PHY. Thus, if the FLP receiving process wins, a full auto-negotiation session follows. If the 100BASE-Tx receiving process wins, 100BASE-Tx link operation starts immediately. If the 10BASE-T receiving process wins, 10BASE-T link operation starts immediately.
It may happen that (i) the receiver cycling is such that the 10BT receiver happens to the first opportunity at the incoming signal, and (ii) the three level (MLT3) scrambled signal is interpreted by the 10BASE-T receiver as normal link pulses. This may happen for the following reasons.
The 100BASE-Tx IDLE signal is scrambled using a polynomial that repeats every 2048 symbol times (about 80 xcexcs). There are several xe2x80x9clong 1xe2x80x9d pulses in this pattern that can resemble 10BASE-T NLP Pulses. A NLP detector rejects NLP pulses that are closer together than 4 ms. This causes it to reject auto-negotiate FLP pulses (which are 60-125 microseconds apart) and to reject scrambled MLT3 idle with its 80 xcexcs repetition rate.
The 10BASE-T NLP detector circuit consists of two sectionsxe2x80x94a carrier detector, which is looking for a signal energy level which exceeds a squelch threshold that is about 440 mV, and a link detector which is looking for 10BASE-T link pulses. The outputs of the two circuits are ANDed together, and the result is sent to the NLP Link Detection Function.
At the specific line length, the MLT3 signal strength is exactly at a level where it xe2x80x9cfadesxe2x80x9d in and out. The carrier detector randomly asserts and de-asserts. Simultaneously, the link detector sees each and every xe2x80x9clong 1xe2x80x9d in the MLT3 pattern. The two are ANDed together, and the result is a xe2x80x9cnotchedxe2x80x9d stream of link pulses. If the notching happens just right, it seem as though there are four link pulses each spaced  greater than 4 ms to the NLP link detector. If this happens, the 10BASE-T receiver will be the winner, and the device will proceed in a full 10BASE-T mode.
Once a 10BASE-T link is established, the criteria for maintaining the link becomes easier. The criteria becomes the presence of NLP pulses or simply 10BASE-T receive activity. It is relatively easy for MLT3 signals to resemble 10BASE-T receive activity to the 10BASE-T receiver (this happens at just about any line length). So once the condition occurs, it stays locked there.
At present, the process of auto-negotiation does not explicitly include any means of determining the quality of the link between devices that are capable of auto-negotiation and accordingly it is the object of the present invention to improve known processes of auto-negotiation to avoid erroneous auto-negotiation in the aforementioned circumstances or other circumstances in which, for example, idle pulses at a higher data rate can resemble coded bursts at a lower data rate and thereby produce ambiguities or frustration in an auto-negotiation sequence.
The invention is based on the use of a filtering to identify accurately energy at the higher of the two relevant rates. This is preferably employed to qualify a final approval of the connection of the link of the higher rate with a descrambler lock indication to ensure that the link does not establish until an error rate is reasonably low. Preferably, as described later, priority may be added in the form of additional states in an auto-negotiation state machine.
The following drawings illustrate one example of the invention.